Field
Embodiments included herein generally relate to the processing of Hidden Markov Models (HMMs). More particularly, embodiments relate to a processing engine configured to process different types of HMM structures.
Background
Hidden Markov Models (HMMs) are used in many applications such as, for example, speech recognition, text-to-speech applications, handwriting recognition, gesture recognition, bioinformatics, and cryptanalysis. These applications can implement different types of HMM structures such as, for example, Ergodic models, left-to-right models, and parallel path left-to-right models. Each of these HMM models includes one or more states, in which a score can be attributed to each HMM model based on its respective one or more states.
For example, a probability can be computed to assess whether a particular HMM model produces an observed sequence of states. Here, a score can be attributed to how well the particular HMM model matches the observed sequence of states. The score can be calculated by enumerating every possible state sequence in the HMM model. For HMM models with a high number of states and/or a complex structure, this can be a computationally-intensive process. This issue is further exacerbated by the limitation of HMM processing engines being only capable of handling one type of HMM structure (e.g., Ergodic HMM structure, left-to-right HMM structure, or parallel path left-to-right HMM structure), thus limiting the implementation of the HMM processing across different HMM applications.